package com.huoniu.user.utils;

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.util.security.MD5Encoder;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.stereotype.Component;

import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;

/**
 * @类 名： CacheKeyGenerator <br/>
 * @描 述： <br/>
 * @日 期： 2020/9/22 10:29<br/>
 * @作 者： 侯建军<br/>
 * @版 本： 1.0.0
 * @since JDK 1.8
 */
@Component
@Slf4j
public class CacheKeyGenerator implements KeyGenerator {
    @Override
    public Object generate(Object o, Method method, Object... objects) {
        log.info(o.getClass().toGenericString());
        log.info(method.getName());
        String str = null;
        for (Object obj : objects) {
            try {
                Field field = obj.getClass().getDeclaredField("id");
                // 设置访问权限
                field.setAccessible(true);
                if (null != field) {
                    str = field.get(obj).toString();
                }
            } catch (NoSuchFieldException | IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return str;
    }
}
